package com.kaizeli.website.pojo.vo;

import lombok.Data;

import java.time.LocalDate;

/**
 * 项目卡片VO类 - 用于项目立项和项目结算的卡片列表
 * 按项目编号分组统计，包含验收单数量信息
 */
@Data
public class ProjectCardVO {
    
    /**
     * 项目编号（唯一标识）
     */
    private String projectCode;
    
    /**
     * 项目名称
     */
    private String projectName;
    
    /**
     * 任务数（验收单总数）
     */
    private Integer totalTasks;
    
    /**
     * 已完成任务数（已验收的验收单数量）
     */
    private Integer completedTasks;
    
    /**
     * 未完成任务数（未验收的验收单数量）
     */
    private Integer pendingTasks;
    
    /**
     * 项目状态（根据验收单状态计算）
     * 当所有验收单都验收完成时，项目状态为"已验收"
     * 否则为"进行中"
     */
    private String projectStatus;
    
    /**
     * 项目开始时间
     */
    private LocalDate startDate;
    
    /**
     * 项目结束时间
     */
    private LocalDate endDate;
    
    /**
     * 项目类型
     */
    private String projectType;
    
    /**
     * 项目类型名称
     */
    private String projectTypeName;
    
    /**
     * 项目经理ID
     */
    private Long managerId;
    
    /**
     * 项目经理姓名
     */
    private String managerName;
    
    /**
     * 客户ID
     */
    private Integer customerId;
    
    /**
     * 客户名称
     */
    private String customerName;
    
    /**
     * 签约公司ID
     */
    private Integer contractCompanyId;
    
    /**
     * 签约公司名称
     */
    private String contractCompanyName;
}
